#!/usr/bin/env python
#coding=utf-8

import socket, os, commands

host = '127.0.0.1'
port = 50007

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)	#解决端口占用问题
s.bind((host, port))

s.listen(1)

while True:
	#接受客户端的元组信息，赋给conn和addr变量
	conn, addr = s.accept()

	#打印来自信息
	print "come in connect", addr

	#因为accept为阻塞函数，当接受到一个连接之后就停止接受其他连接，所以需要接继续循环使得程序不停的recv
	while True:
		data = conn.recv(1024)

		#判断client是否断开连接
		if not data: break

		#接受用户的指令，打印执行结果
		res = commands.getstatusoutput(data)
		print res[0], res[1]

		#判断命令返回值，利用commands中命令返回值的状态来判断发送给客户端,告知命令是否执行成功
		if res[0] == 0:
			if res[1] == '':
				res_back = 'command success ok %s' % data
			else:
				res_back = res[1]
		else:
			res_back = 'command not correct %s' % data

		print 'res_back', res_back

		conn.sendall(res_back)

	conn.close()